package com.zutassociation.system.service;

import com.zutassociation.system.domain.Forum;

import java.util.List;

/**
 * 论坛 服务层
 *
 * @author 黄玉东
 * @version 1.0
 * @date 2021/5/8 13:52
 */
public interface ForumService {

    /**
     * 查询论坛信息
     *
     * @param forumId 论坛ID
     * @return 论坛信息
     */
    public Forum selectForumById(Long forumId);

    /**
     * 查询发送人论坛信息
     *
     * @param userId 论坛ID
     * @return 论坛信息
     */
    public Forum selectForumByUserId(Long userId);

    /**
     * 查询论坛列表
     *
     * @param forum 论坛信息
     * @return 论坛集合
     */
    public List<Forum> selectForumList(Forum forum);

    /**
     * 新增论坛
     *
     * @param forum 论坛信息
     * @return 结果
     */
    public int insertForum(Forum forum);

    /**
     * 修改论坛
     *
     * @param forum 论坛信息
     * @return 结果
     */
    public int updateForum(Forum forum);

    /**
     * 修改论坛举报状态
     *
     * @param forum 论坛信息
     * @return 结果
     */
    public int updateForumReport(Forum forum);

    /**
     * 修改论坛可用状态
     *
     * @param forum 论坛信息
     * @return 结果
     */
    public int updateForumStatus(Forum forum);

    /**
     * 修改论坛结帖状态
     *
     * @param forum 论坛信息
     * @return 结果
     */
    public int updateForumAccept(Forum forum);

    /**
     * 浏览量+1
     *
     * @param forum 论坛信息
     * @return 结果
     */
    public int updateForumClick(Forum forum);

    /**
     * 点赞量+1
     *
     * @param forum 论坛信息
     * @return 结果
     */
    public int updateForumFabulous(Forum forum);

    /**
     * 收藏量+1
     *
     * @param forum 论坛信息
     * @return 结果
     */
    public int updateForumCollection(Forum forum);
    /**
     * 回复量+1
     *
     * @param forum 论坛信息
     * @return 结果
     */
    public int updateForumReply(Forum forum);
    public int updateForumReplyDel(Forum forum);

    /**
     * 批量删除论坛
     *
     * @param forumId 论坛ID
     * @return 结果
     */
    public int deleteForumById(Long forumId);

    /**
     * 批量删除论坛信息
     *
     * @param forumIds 需要删除的论坛ID
     * @return 结果
     */
    public int deleteForumByIds(Long[] forumIds);

    /**
     * 批量修改论坛举报状态为 1 成功
     *
     * @param forumIds 需要阅读的论坛ID
     * @return 结果
     */
    public int deleteForumByReport1(Long[] forumIds);

    /**
     * 批量修改论坛举报状态为 2 不成功
     *
     * @param forumIds 需要阅读的论坛ID
     * @return 结果
     */
    public int deleteForumByReport2(Long[] forumIds);

    /**
     * 批量修改论坛结帖状态为 0
     *
     * @param forumIds 需要阅读的论坛ID
     * @return 结果
     */
    public int deleteForumByAccept0(Long[] forumIds);

    /**
     * 批量修改论坛结帖状态为 1
     *
     * @param forumIds 需要阅读的论坛ID
     * @return 结果
     */
    public int deleteForumByAccept1(Long[] forumIds);
}
